/**
 * Tab插件
 */
;(function($) {
    "use strict";

    // var _height = $(document.body).height() - $("header").height();

    $.m_tab = function(opt) {
        opt = opt || {};
        //- tab索引缓存key - 必填
        opt.cache = opt.cache || "";
        //- 是否重置滚动条 - 选填
        // opt.reset = opt.reset || false;
        //- tab导航类名
        opt.tab = opt.tab || ".m-tab";
        //- tab内容类名
        opt.list = opt.list || ".m-tab-list";

        let index = sessionStorage.getItem(opt.cache);
        index = parseInt(index) || 0;
        sessionStorage.setItem(opt.cache, index);

        const $tabs = $(opt.tab);
        const $lists = $(opt.list);

        //- 当前选中的tab
        const $tab = $tabs.eq(index);
        //- 当前显示的tab内容
        const $list = $lists.eq(index);
        $tab.addClass('on').siblings().removeClass('on');
        // $list.show().siblings().hide();
        $list.addClass('on').siblings().removeClass('on');
        $list.removeAttr('style').siblings().css({'overflow': 'hidden'});
        // $list.removeAttr('style').siblings().css({'height': _height, 'overflow': 'hidden'});

        //- 分割线判断
        if ($tabs.length > 2) {
            $tab.prev().addClass('nosplit');
        }

        if (opt.init) {
            opt.init($list);
        }

        //- tab点击切换事件
        $tabs.m_touch(function() {
            const $this = $(this);
            if ($this.hasClass('on')) return;

            //- 分割线判断
            $tabs.removeClass('nosplit');
            if ($tabs.length > 2) {
                $this.prev().addClass('nosplit');
            }

            //- 获取下标索引位置
            const i = $this.index();
            //- 更新缓存
            sessionStorage.setItem(opt.cache, i);
            //- 切换tab
            $this.addClass('on').siblings().removeClass('on');

            //- 切换tab内容
            const e_list = $lists.eq(i);
            // e_list.show().siblings().hide();
            e_list.addClass('on').siblings().removeClass('on');
            e_list.removeAttr('style').siblings().css({'overflow': 'hidden'});
            // e_list.removeAttr('style').siblings().css({'height': _height, 'overflow': 'hidden'});

            //- 是否重置滚动条
            // if (opt.reset) {
            //     $(document).scrollTop(0);
            // }

            const len = e_list.children().length;
            if (len > 0) return;

            //- 如果该容器内无任何子元素，则执行switch方法
            if (opt.switch) {
                opt.switch(e_list);
            }
        });
    };

})($);